#5-5列表的创建与删除
from traceback import format_exc

lst=['hello','world',98,100.5]
print(lst)

lst2 = list('helloworld')
lst3 = list(range(1,10,2))
print(lst2)
print(lst3)

print(lst+lst2+lst3)
print(lst*3)
print(len(lst))
print(max(lst2))
print(min(lst3))

print(lst2.count('o'))
print(lst2.index('o'))

lst4=[10,20,40]
print(lst4)
del lst4[0]
print(lst4)
print('-'*40)

#5-6列表的遍历操作
lst= ['hello','world','python','php']

for item in lst:
    print(item)

for i in range(0,len(lst)):
    print(i,'-->',lst[i])

for index,item in enumerate(lst):
    print(index,item)
#手动修改序号的起始值
for index,item in enumerate(lst,start=1):
    print(index,item)
for index,item in enumerate(lst,1):
    print(index,item)
print('-'*40)

#5-7 列表的相关操作
lst=['hello','world','python']
print('原列表：',lst,id(lst))
# 增加元素的操作
lst.append('sql')
print('增加元素之后：',lst,id(lst))
# 使用insert(index,x)在指定的index位置上插入元素x
lst.insert(1,100)
print(lst)
# 列表元素的删除操作
lst.remove('world')
print('删除元素之后的列表:',lst,id(lst))
#使用pop(index)根据索引将元素取出，然后再删除
print(lst.pop(1))
print(lst)

#清除列表中所有的元素clear()
# lst.clear()
# print(lst,id(lst))

# 列表的反向
lst.reverse() # 不会产生新的列表，在原列表的基础上进行的
print(lst)

# 列表的拷贝，将产生一个新的列表对象
new_lst=lst.copy()
print(lst,id(lst))
print(new_lst,id(new_lst))

# 列表元素的修改操作
# 根据索引进行修改元素
lst[1]='mysql'
print(lst)
print('-'*40)

#5-8 列表的排序操作
lst=[4,56,3,78,40,56,89]
print('原列表：',lst)

lst.sort()
print('升序：',lst)

lst.sort(reverse=True)
print('降序：',lst)

print('*'*20)
lst2=['banana','apple','Cat','Orange']
print('原列表：',lst2)

lst2.sort()
print('升序；',lst2)

lst2.sort(reverse=True)
print('降序：',lst2)

lst2.sort(key=str.lower) #都按照小写
print(lst2)
print('-'*40)

#列表的排序sorted
lst = [4,56,48,67,78,45]
print('原列表：',lst)
#排序
asc_lst=sorted(lst)
print('升序：',asc_lst)
print('原列表：',lst)

#降序
desc_lst=sorted(lst,reverse=True)
print('降序排列：',desc_lst)
print('原列表',lst)

lst2=['banana','apple','Cat','Orange']
print('原列表',lst2)

#忽略大小写进行排序
new_lst2=sorted(lst2,key=str.lower)
print('原列表：',lst2)
print('排序后的列表',new_lst2)

print('-'*40)
#5-11二维列表的遍历和列表生成式
#创建二维列表
lst=[
    ['城市','环比','同比'],
    ['北京',102,103],
    ['上海',156,150],
    ['深圳',15,61]
]
print(lst)
#遍历二维列表用双重for循环
for row in lst:
    for item in row:
        print(item,end='\t')
    print()

#列表生成式生成一个4行5列的二维列表
lst2=[[j for j in range(5)] for i in range(4)]
print(lst2)





